CPen( ); CPen( int nPenStyle, int nWidth, COLORREF crColor ); throw( CResourceException ); CPen( int nPenStyle, int nWidth, const LOGBRUSH* pLogBrush, int nStyleCount = 0, const DWORD* lpStyle = NULL ); throw( CResourceException );
Параметры
nPenStyle
Определяет перьевой стиль. Этот параметр в первой версии конструктора может быть одно из следующих значений:
PS_SOLID Создает сплошное перо. PS_DASH Создает пунктирное перо. Допустимый только, когда перьевая ширина 1 или меньше, в модулях устройства. PS_DOT Создает точечное перо. Допустимый только, когда перьевая ширина 1 или меньше, в модулях устройства. PS_DASHDOT Создает перо с чередованием, черточки и точки. Допустимый только, когда перьевая ширина 1 или меньше, в модулях устройства. PS_DASHDOTDOT Создает перо с чередованием, черточки и двойные точки. Допустимый только, когда перьевая ширина 1 или меньше, в модулях устройства. PS_NULL Создает пустое перо. PS_INSIDEFRAME Создает перо, которое выводит линию внутри рамки закрытых форм, произведенных Windows GDI функциями вывода, которые определяют ограничительный прямоугольник (например, Ellipse, Rectangle, RoundRect, Pie, и Chord функции . Когда этот стиль используется с Windows GDI функции вывода, которые не определяют ограничительный прямоугольник (например, LineTo функция), область рисунка пера не ограничена рамкой.
Вторая версия CPen конструктора определяет комбинацию типа, стиля, конца и начала, и атрибутов объединения. Значения из каждой категории должны быть объединены, используя поразрядный или (OR) оператор (|). Перьевой тип может быть одно из следующих значений:
PS_GEOMETRIC Создает геометрическое перо. PS_COSMETIC Создает косметическое перо.
Вторая версия CPen конструктора добавляет следующие перьевые стили для nPenStyle:
PS_ALTERNATE Создает перо, которое устанавливает все остальные пиксели. (Этот стиль применим только для косметических перьев.) PS_USERSTYLE Создает перо, которое использует массив стилей, обеспеченный пользователем.
Конец и начало может быть одно из следующих значений:
PS_ENDCAP_ROUND Окончание округлое. PS_ENDCAP_SQUARE Окончание квадратное. PS_ENDCAP_FLAT Окончание плоское.
Объединение может быть одно из следующих значений:
PS_JOIN_BEVEL Соединения скашиваться. PS_JOIN_MITER Соединения специального типа , когда они - внутри текущего набора ограничений функцией SetMiterLimit. Если соединение превышает это ограничение, оно скашиваеться. PS_JOIN_ROUND Объединения скругляються.
nWidth
Определяет ширину пера.
Для первой версии конструктора, если это значение - 0, ширина в модулях устройства - всегда 1 пиксель, независимо от режима отображения.
Для второй версия конструктора, если nPenStyle - PS_GEOMETRIC, ширина, дана в логических модулях. Если nPenStyle - PS_COSMETIC, ширина должна быть установлена к 1.
crColor
Содержит RGB цвет для пера.
pLogBrush
Указатель на структуру LOGBRUSH. Если nPenStyle - PS_COSMETIC, lbColor член структуры LOGBRUSH определяет цвет пера, и lbStyle член структуры LOGBRUSH должен быть установлен к BS_SOLID. Если nPenStyle - PS_GEOMETRIC, все элементы должны использоваться, чтобы определить атрибуты кисти пера.
nStyleCount
Определяет длину, в модулях двойного слова, lpStyle массива. Это значение должно быть нуль, если nPenStyle - не PS_USERSTYLE.
lpStyle
Указатель на массив значений двойного слова. Первое значение определяет длину первой черточки в определяемом пользователем стиле, второй, значение определяет длину первого пробела, и так далее. Этот указатель должен быть NULLnPenStyle - не PS_USERSTYLE.
Замечания
Если Вы используете конструктор без параметров, Вы должны инициализировать возникающий в результате объект CPen с CreatePen, CreatePenIndirect, или CreateStockObject функциями. Если Вы используете конструктор, который берет параметры, то никакая дальнейшая инициализация не требуется. Конструктор с параметрами может бросать исключительную ситуацию, если с ошибками сталкиваются, в то время как конструктор без параметров будет всегда преуспевать.